home *** CD-ROM | disk | FTP | other *** search
/ Amiga Developer CD 2.1 / Amiga Developer CD v2.1.iso / Reference / DevCon / Atlanta_1990 / Atlanta-Devcon.2 / AppShell / examples / WatchMan / wm.h < prev   
Encoding:
C/C++ Source or Header  |  1992-08-26  |  7.3 KB  |  242 lines

  1. #define APPNAME "WatchMan"
  2. #define APPVERS "WatchMan 1.13 (19-Jun-90)"
  3. #define APPCOPY "Copyright (C) 1990 Commodore-Amiga, Inc."
  4. #define APPAUTH "ec. walraven"
  5.  
  6.  
  7. /* Protos */
  8. VOID WMInitFunc         (struct AppInfo *, STRPTR, struct TagItem *);
  9. VOID WMExitFunc         (struct AppInfo *, STRPTR, struct TagItem *);
  10. VOID WMAboutFunc        (struct AppInfo *, STRPTR, struct TagItem *);
  11.  
  12. VOID FileNotification   (struct AppInfo *, STRPTR, struct TagItem *);
  13.  
  14. VOID SetFilenameFunc    (struct AppInfo *, STRPTR, struct TagItem *);
  15. VOID SetRetriesFunc     (struct AppInfo *, STRPTR, struct TagItem *);
  16. VOID SetIntervalFunc    (struct AppInfo *, STRPTR, struct TagItem *);
  17. VOID SetFlagsFunc       (struct AppInfo *, STRPTR, struct TagItem *);
  18.  
  19. VOID GetFileFromListFunc(struct AppInfo *, STRPTR, struct TagItem *);
  20.  
  21. VOID AddTargetFunc      (struct AppInfo *, STRPTR, struct TagItem *);
  22. VOID DelTargetFunc      (struct AppInfo *, STRPTR, struct TagItem *);
  23. VOID SyncTargetFunc     (struct AppInfo *, STRPTR, struct TagItem *);
  24. VOID InquiryTargetFunc  (struct AppInfo *, STRPTR, struct TagItem *);
  25.  
  26. VOID QuitFunc(struct AppInfo *ai, STRPTR str, struct TagItem *tl)
  27. {
  28.     ai->ai_Done = TRUE;
  29. }
  30.  
  31. enum
  32. {
  33.     WM_DummyID = APSH_USER_ID,
  34.     WM_AddID,      /* add button */
  35.     WM_DelID,      /* del button */
  36.     WM_SyncID,     /* sync button */
  37.     WM_InquiryID,  /* inq button */
  38.     WM_FilesID,    /* listview for files */
  39.     WM_FlagsID,    /* flag list view */
  40.     WM_RetriesID,  /* retry string */
  41.     WM_IntervalID, /* interval integer string */
  42.     WM_FilenameID, /* filename string */
  43.     WM_ShowFlagsID, /* Show flag settings */
  44.     WM_FileTextID,
  45.     WM_InterTextID,
  46.     WM_RetryTextID,
  47.     WM_InitID,
  48.     WM_ExitID,
  49.     LAST_ID,
  50. };
  51.  
  52. struct Funcs FTable[] =
  53. {
  54.     {"ADD",         AddTargetFunc,          WM_AddID,},
  55.     {"DEL",         DelTargetFunc,          WM_DelID,},
  56.     {"SYNC",        SyncTargetFunc,         WM_SyncID,},
  57.     {"INQUIRY",     InquiryTargetFunc,      WM_InquiryID,},
  58.     {"SETFILENAME", SetFilenameFunc,        WM_FilenameID,},
  59.     {"GETFRMFLIST", GetFileFromListFunc,    WM_FilesID, NULL, NULL, APSH_FF_PRIVATE,},
  60.     {"SETRET",      SetRetriesFunc,         WM_RetriesID,},
  61.     {"SETINT",      SetIntervalFunc,        WM_IntervalID,},
  62.     {"SETFLAGS",    SetFlagsFunc,           WM_FlagsID,},
  63.     {"INIT",        WMInitFunc,             WM_InitID,NULL,NULL,APSH_FF_PRIVATE,},
  64.     {"EXIT",        WMExitFunc,             WM_ExitID,NULL,NULL,APSH_FF_PRIVATE},
  65.     {"ABOUT",       WMAboutFunc,            AboutID,},
  66.     {"QUIT",        QuitFunc,               QuitID,},
  67.     {NULL,          NO_FUNCTION,},
  68. };
  69.  
  70. STRPTR wm_deftext[] = 
  71. {
  72.     NULL,
  73.     APPVERS,
  74.     "Targets",
  75.     "Flags",
  76.     "Filename",
  77.     "Interval",
  78.     "Retries",
  79.     "Add Target",
  80.     "Delete Target",
  81.     "Sync Target",
  82.     "Inquiry Target",
  83.     NULL
  84. };
  85.  
  86. struct NewMenu menus[] =
  87. {
  88.     {NM_TITLE, "Project",       0, 0, 0, 0, },
  89.     {NM_ITEM,  "About",         0, 0, 0, V (AboutID), },
  90.     {NM_ITEM,  "Quit",          "Q", 0, 0, V ( QuitID ), },
  91.     {NM_TITLE, "Extras",        0, 0, 0, 0, },
  92.     {NM_ITEM,  "Command Shell", "E", 0, 0, V ( CMDShellID ), },
  93.     {NM_END, },
  94. };
  95.  
  96. struct TagItem stringFlags[] =
  97. {
  98.     {APSH_GTFlags, PLACETEXT_ABOVE},
  99.     {GTST_MaxChars, 512},
  100.     {TAG_DONE,},
  101. };
  102.  
  103. struct TagItem textFlags[] =
  104. {
  105.     {GTTX_Border, TRUE},
  106.     {TAG_DONE,},
  107. };
  108.  
  109. struct Object objects[] =
  110. {
  111.     {&objects[1], 0, OBJ_Window, NULL, NULL, NULL, "WMWINDOW", 1L, {1, 1, 0, 0}, },
  112.     {&objects[2], 2, OBJ_Listview, WM_FilesID, NULL, NULL, "FILELIST", 2L, {11, 25, 158, 55}, },
  113.     {&objects[3], 2, OBJ_Listview, WM_FlagsID, NULL, NULL, "FLAGLIST", 3L, {180, 25, 158, 55}, },
  114.     {&objects[4], 2, OBJ_String, WM_FilenameID, NULL, NULL, "FSTRING", 4L, {11, 110, 178, 14}, stringFlags},
  115.     {&objects[5], 1, OBJ_Integer, WM_IntervalID, NULL, NULL, "ISTRING",5L,     {209, 110, 108, 14}, stringFlags},
  116.     {&objects[6], 1, OBJ_Integer, WM_RetriesID, NULL, NULL, "RSTRING",6L, {344, 110, 108, 14}, stringFlags},
  117.     {&objects[7], 0, OBJ_Button, WM_AddID, NULL, 'a', "ADDBUTTON", 7L, {350, 25, 120, 16}, },
  118.     {&objects[8], 0, OBJ_Button, WM_DelID, NULL, 'd', "DELBUTTON", 8L, {350, 40, 120, 16}, },
  119.     {&objects[9], 0, OBJ_Button, WM_SyncID, NULL, 's', "SYNCBUTTON", 9L, {350, 55, 120, 16}, },
  120.     {&objects[10], 0, OBJ_Button, WM_InquiryID, NULL, 'i', "INQBUTTON", 10L, {350, 70, 120, 16}, },
  121.     {NULL, 0, OBJ_Text, WM_ShowFlagsID, NULL, NULL, "SHOWTEXT", 0
  122. , {180, 80, 158, 20},textFlags},
  123. };
  124.  
  125. struct TagItem winenv[] =
  126. {
  127.     {APSH_NameTag,   (ULONG)"MAIN"},
  128.     {APSH_Objects,   (ULONG)objects},
  129.     {APSH_GTMenu,    (ULONG)menus},
  130.     {TAG_DONE,}
  131. };
  132.  
  133. struct TagItem appwinenv[] = 
  134. {
  135.     {APSH_NameTag,   (ULONG)"MAIN"},    /* Window to be AppWindow */
  136.     {APSH_CmdFlags,  APSH_WBF_NOLIST},  /* Don't update the project list */
  137.     {APSH_AppDDrop,  WM_FilenameID},    /* ID of function to call on drop */
  138.     {TAG_DONE,}
  139. };
  140.  
  141. /* required libraries */
  142. extern ULONG SysBase;
  143. ULONG IntuitionBase;
  144. ULONG GfxBase;
  145. ULONG GadToolsBase;
  146. ULONG LayersBase;
  147. ULONG WorkbenchBase;
  148.  
  149. struct TagItem WM_Libs[] =
  150. {
  151.     {APSH_LibVersion, 36L},
  152.     {APSH_LibStatus,  REQUIRED},
  153.     {APSH_LibNameTag, APSH_Intuition},
  154.     {APSH_LibBase,    &IntuitionBase},
  155.     {APSH_LibNameTag, APSH_Gfx},
  156.     {APSH_LibBase,    &GfxBase},
  157.     {APSH_LibNameTag, APSH_GadTools},
  158.     {APSH_LibBase,    &GadToolsBase},
  159.     {APSH_LibNameTag, APSH_Layers},
  160.     {APSH_LibBase,    &LayersBase},
  161.     {APSH_LibStatus,  OPTIONAL},
  162.     {APSH_LibNameTag, APSH_Workbench},
  163.     {APSH_LibBase,    &WorkbenchBase},
  164.     {TAG_DONE,}
  165. };
  166.  
  167. /* message handler information */
  168. struct TagItem Handle_SIPC[] =
  169. {
  170.     {APSH_Setup,    setup_sipcA},
  171.     {APSH_Status,   P_ACTIVE | P_SINGLE},
  172.     {APSH_Rating,   REQUIRED},
  173.     {TAG_DONE,}
  174. };
  175.  
  176. struct TagItem Handle_AREXX[] =
  177. {
  178.     {APSH_Setup,    setup_arexxA},
  179.     {APSH_Extens,   (ULONG)"mod"},
  180.     {APSH_Status,   P_ACTIVE | P_SINGLE},
  181.     {APSH_Rating,   OPTIONAL},
  182.     {TAG_DONE,}
  183. };
  184.  
  185. struct TagItem Handle_DOS[] =
  186. {
  187.     {APSH_Setup,    setup_dosA},
  188.     {APSH_Status,   P_INACTIVE},
  189.     {APSH_Rating,   OPTIONAL},
  190.     {APSH_Prompt,   (ULONG)"WM> "},
  191.     {APSH_CMDWindow, (ULONG)"CON:0/100/600/50/WatchMan/CLOSE"},
  192.     {TAG_DONE,}
  193. };
  194.  
  195.  
  196. struct TagItem Handle_WB[] = 
  197. {
  198.     {APSH_Setup,        setup_wbA},
  199.     {APSH_AppWindowEnv, (ULONG)appwinenv},
  200.     {APSH_Status,       P_ACTIVE},
  201.     {APSH_Rating,       OPTIONAL},
  202.     {TAG_DONE,}
  203. };
  204.  
  205. struct TagItem Handle_FN[] =
  206. {
  207.     {APSH_Setup,     setup_fnA},
  208.     {APSH_Status,    P_ACTIVE},
  209.     {APSH_Rating,    OPTIONAL},
  210.     {APSH_CmdData,   FileNotification},
  211.     {TAG_DONE,}
  212. };
  213.  
  214. struct TagItem Handle_IDCMP[] =
  215. {
  216.     {APSH_Setup,    setup_idcmpA},
  217.     {APSH_WindowEnv,(ULONG)winenv},
  218.     {APSH_Status,   P_ACTIVE},
  219.     {APSH_Rating,   REQUIRED},
  220.     {TAG_DONE,}
  221. };
  222.  
  223. struct TagItem WM[] =
  224. {
  225.     {APSH_AppName,       (ULONG)APPNAME},
  226.     {APSH_AppVersion,    (ULONG)APPVERS},
  227.     {APSH_AppCopyright,  (ULONG)APPCOPY},
  228.     {APSH_AppAuthor,     (ULONG)APPAUTH},
  229.     {APSH_FuncTable,     (ULONG)FTable},
  230.     {APSH_DefText,       (ULONG)wm_deftext},
  231.     {APSH_OpenLibraries, (ULONG)WM_Libs},
  232.     {APSH_AddHandler,    (ULONG)Handle_SIPC},
  233.     {APSH_AddHandler,    (ULONG)Handle_IDCMP},
  234.     {APSH_AddHandler,    (ULONG)Handle_AREXX},
  235.     {APSH_AddHandler,    (ULONG)Handle_DOS},
  236.     {APSH_AddHandler,    (ULONG)Handle_WB},
  237.     {APSH_AddHandler,    (ULONG)Handle_FN},
  238.     {APSH_AppInit,       (ULONG)WM_InitID},
  239.     {APSH_AppExit,       (ULONG)WM_ExitID},
  240.     {TAG_DONE,}
  241. };
  242.